/*
 * Copyright (c) 2012 Tomas Shestakov. <http://code.google.com/p/jmmo/>
 */

package jmmo.engine.multifacetedactor

import akka.actor.ActorRef

sealed trait ServicesRequest extends Serializable

case class AddServiceRequest(id: Any, ref: ActorRef, data: Option[Any]) extends ServicesRequest

case class RemoveServiceRequest(id: Any) extends ServicesRequest

case object GetServicesRequest extends ServicesRequest

case class GetServicesResponse(services: scala.collection.Map[Any, (ActorRef,Option[Any])])


sealed trait ServiceEvent extends Serializable

/**
 *
 */
case class ServiceAvailable(id: Any, ref: ActorRef, data: Option[Any]) extends ServiceEvent

/**
 *
 */
case class ServiceRevoked(id: Any, ref: ActorRef, data: Option[Any]) extends ServiceEvent
